class Transmogrifiable s where
	transmogrify :: Transmogrifiable s => s -> s
	
data Foo = Bar | Baz deriving Show

instance Transmogrifiable Foo where
	transmogrify Bar = Baz	
	transmogrify Baz = Bar